<!DOCTYPE html>
<html lang="zh_CN">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<p>

    1. javascript里面的函数
</p>

<p>
    什么是函数？
    函数就是一个功能代码块的封装。

    为什么要有使用函数？
    主要是为了实现代码的复用。

</p>
<p>
    2. 函数的分类
    a. 系统函数：javascript编程语言内部自带的一些函数
    b. 用户自定义函数：通过 function关键字进行定义的
</p>

<p>
    3. 函数的语法
</p>

</body>
<script type="text/javascript">
    var d = 12;
    console.log(d);
    var c = 200000000;

    /**
     * 函数的定义或者函数的声明（只需一次）
     * 功能：实现两个数的相加
     *
     * @param val1 加数1
     * @param val2 加数2
     * @returns {*} 求和结果
     */
    var fn = function add(val1, val2) {
        /*函数内部的变量：只能在函数的内部使用 */
        // var c = 12;

        // 函数作用域里面进行变量查找的时候，有内向外查找，采取就近原则；
        function test() {
            // var c = 10000000;
            /*自身是没有c和d变量，向外查找 fn c，继续向外查找 全局 d*/
            console.log(c, d);
        }

        test();

        return val1 + val2 + c + d;

    }

    console.log(fn(12, 23));
    var rs = fn(12, 34);
    console.log(rs);
    // 1. 全局作用域：生效的范围是在整个代码块里面； 2.函数作用域 只能在函数的内部使用 外部使用报错
    // 错误写法 ReferenceError: c is not defined
    // console.log(c);
    /*3. 块级作用域，但是这个作用域是最新的es6引入的*/
    {
        var username = 'andy';
        console.log(username);
    }
    {
        var username = 'mark';
        console.log(username);
    }


</script>

</html>
